// [9/25/2013 OMEGA] created

#ifndef _DUELASSEEDITGROUPCMD_H_
#define _DUELASSEEDITGROUPCMD_H_


#include <QUndoCommand>
#include "DuelAssECommon.h"
#include "DuelAssECommand.h"
#include "DuelAssEEditResourceOfGroupCmd.h"
#include "DuelAssEEditArchiveOfGroupCmd.h"


class DAssEAddGroupCmd : public DAssECommand
{
public:
	DAssEAddGroupCmd(DAssEWorkbench* workbench, QUndoCommand* parent,
		const QString& grpName);
	virtual ~DAssEAddGroupCmd();

	virtual void	redo();
	virtual void	undo();

protected:
	QString				mTargetGroupName;
	DuelAssetEditor*	mParent;
//	bool				mbExecuted;
};


class DAssERemoveGroupCmd : public DAssECommand
{
public:
	DAssERemoveGroupCmd(DAssEWorkbench* workbench, QUndoCommand* parent,
		const QString& grpName);
	virtual ~DAssERemoveGroupCmd();

	virtual void	redo();
	virtual void	undo();

protected:
	QString				mTargetGroupName;
	DuelAssetEditor*	mParent;
	//DAssEDetachArchiveFromGroupCmd* mDetachArchCmd;
};


class DAssERenameGroupCmd : public DAssECommand
{
public:
public:
	DAssERenameGroupCmd(DAssEWorkbench* workbench, QUndoCommand* parent,
		const QString& oldGrpName, 
		const QString& newGrpName);
	virtual ~DAssERenameGroupCmd();

	virtual void	redo();
	virtual void	undo();

protected:
	QString				mOldGroupName;
	QString				mNewGroupName;
	DuelAssetEditor*	mParent;
};
#endif